﻿using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Queues
{
    class Program
    {
        static void Main(string[] args)
        {
            //创建一个队列
            Queue myQ = new Queue();
            myQ.Enqueue("我");
            myQ.Enqueue("喜");
            myQ.Enqueue("欢");
            myQ.Enqueue("小");
            myQ.Enqueue(null);//添加null
            myQ.Enqueue("波");

            // 打印队列的数量和值
            Console.WriteLine();
            Console.WriteLine("\t总共有: {0} 个字符串", myQ.Count);

            // 打印队列中的所有值
            Console.Write("打印队列中的所有值:");
            PrintValues(myQ);

            // 打印队列中的第一个元素，并移除
            Console.WriteLine("打印队列中的第一个元素，并移除\t{0}", myQ.Dequeue());
         
            Console.ReadLine();


        }

        public static void PrintValues(IEnumerable myCollection)
        {
            foreach (Object obj in myCollection)
                Console.Write("    {0}", obj);
            Console.WriteLine();
        }

    }
}
    //public virtual void Clear();
    //从Queue中移除所有的元素。
    //public virtual bool Contains(object obj);
    //判断某个元素是否在Queue中。
    //public virtual object Dequeue();
    //移除并返回在Queue的开头的对象。
    //public virtual void Enqueue(object obj);
    //向Queue的末尾添加一个对象。
    //public virtual object[] ToArray();
    //复制Queue到一个新的数组中。
    //public virtual void TrimToSize();
    //设置容量为Queue中元素的实际个数。